// 记录短信验证码
let secret_code = ''
const app = getApp()
Page({
  data: {
    // 是否显示倒计时组件
    countDownVisible: false,
    // 倒计时信息对象
    timeData: {},
    // 手机号
    mobile: '',
    // 验证码
    code: '',
    // 重定向的url地址
    redirectURL: '',
  },

  onLoad({ redirectURL }) {
    this.setData({
      redirectURL,
    })
  },

  countDownChange(ev) {
    this.setData({
      timeData: ev.detail,
      countDownVisible: ev.detail.minutes === 1 || ev.detail.seconds > 0,
    })
  },

  // 1. 获取短信验证码
  async getCode() {
    const { mobile } = this.data
    // 1.1 校验手机号
    if (!wx.utils.verifyMobile(mobile)) return
    // 1.2 调用接口函数
    const { code, data } = await wx.http.get('/code', { mobile: mobile.trim() })
    if (code !== 10000) return wx.utils.toast('发送短信验证码失败~')
    wx.utils.toast('获取短信验证码成功~')
    // 1.3 开启倒计时
    this.setData({
      countDownVisible: true,
    })
    // 1.4 记录短信验证码
    secret_code = data.code
  },

  // 2. 把验证码粘贴到粘贴板上
  copyCode() {
    wx.setClipboardData({
      data: secret_code,
    })
  },

  // 3. 登录或注册
  async onLogin() {
    const { mobile, code, redirectURL } = this.data
    // 3.1 校验手机号和验证码
    if (!wx.utils.verifyMobile(mobile)) return
    if (!wx.utils.verifyCode(code)) return
    // 3.2 调用接口
    const res = await wx.http.post('/login', { mobile, code })
    if (res.code !== 10000) return wx.utils.toast('登录失败~')
    wx.utils.toast('登录成功~')
    // 3.3 存储token和refreshToken
    app.setToken(res.data.token)
    app.setRefreshToken(res.data.refreshToken)
    // 3.4 跳转到之前的页面
    // 判断要去的页面是否是 我的  (TabBar页面)
    if (redirectURL.includes('/pages/my/index')) {
      wx.switchTab({
        url: redirectURL,
      })
    } else {
      wx.redirectTo({
        url: redirectURL,
      })
    }
  },
})
